package com.ruoyi.model.activity;


import java.util.Date;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 活动对象 web_activity
 *
 * @author 张怀秋
 * @date 2024-04-07
 */
@TableName("web_activity")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Activity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 活动标题
     */
    @Excel(name = "活动标题")
    private String title;

    /**
     * 活动描述
     */
    @Excel(name = "活动描述")
    private String description;

    /**
     * 允许参加的活动人数
     */
    @Excel(name = "允许参加的活动人数")
    private Long personNum;

    /**
     * 内容详情
     */
    @Excel(name = "内容详情")
    private String content;

    /**
     * 图片id
     */
    @Excel(name = "图片id")
    private String cover;

    /**
     * 活动地址
     */
    @Excel(name = "活动地址")
    private String local;

    /**
     * 是否允许提交电子档
     */
    @Excel(name = "是否允许提交电子档")
    private String isEmail;

    /**
     * 是否收费
     */
    @Excel(name = "是否收费")
    private String isToll;

    /**
     * 是否为团队报名
     */
    @Excel(name = "是否为团队报名")
    private String isTeam;

    /**
     * 团队最大人数（最少1人）
     */
    @Excel(name = "团队最大人数", readConverterExp = "最=少1人")
    private Long teamNum;

    /**
     * 收取费用
     */
    @Excel(name = "收取费用")
    private Long toll;

    private int sort;
    private String pushName;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date pushTime;


    /**
     * 活动开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /**
     * 活动结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "活动结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /**
     * 主办方
     */
    @Excel(name = "主办方")
    private String organizer;

    /**
     * 发布者id
     */
    @Excel(name = "发布者id")
    private String pushId;

    /**
     * 分类id
     */
    @Excel(name = "分类id")
    private String categoryId;

    /**
     * 报名开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报名开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enrollStartDate;

    /**
     * 报名结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "报名结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date enrollEndDate;

    /**
     * 活动状态
     */
    @Excel(name = "活动状态")
    private String status;

    /**
     * 是否置顶
     */
    @Excel(name = "是否置顶")
    private String isTop;

    /**
     * 是否允许评论
     */
    @Excel(name = "是否允许评论")
    private String isComment;

    /**
     * 已经参加人数
     */
    @Excel(name = "已经参加人数")
    private Long participationNum;

    /**
     * 浏览人数
     */
    @Excel(name = "浏览人数")
    private Integer viewNum;

    /**
     * 逻辑删除表示
     */
    @Excel(name = "逻辑删除表示")
    @TableLogic
    private String isDel;

    @Version
    private Long version; //乐观锁

    public Activity(String id, Integer viewNum) {
        this.id = id;
        this.viewNum = viewNum;
    }
}
